package br.com.iswe.gerador.velocity.gerador;

import br.com.iswe.gerador.velocity.info.InfoEntidadeImpl;
import br.com.iswe.gerador.velocity.info.InfoGerador;
import br.com.iswe.gerador.velocity.patterns.ControllerPattern;

public class GeradorControllerImpl extends GeradorGenerico {

	public static final String NOME_GERADOR = "geradorControllerImpl";
	private static final String GERADOR_CONTROLLER_PASTA_SAIDA = "gerador.controller.pasta.saida";
	
	ControllerPattern controllerPattern = new ControllerPattern();
	
	public GeradorControllerImpl() {
		this.templateName = "GWT-CONTROLLER-IMPL.vm";
		this.handler = new GeradorHandler(){
			public String getNomeArquivo(InfoEntidadeImpl infoEntidade) {
				return controllerPattern.getControllerImplName(infoEntidade) + ".java";
			}
			public String getPackageObjeto(InfoEntidadeImpl infoEntidade) {
				return controllerPattern.getPackage(infoEntidade);
			}
			public boolean shouldGenerateFile(InfoGerador infoGerador, String arquivo) {
				return infoGerador.shouldGenerateFile(arquivo);
			}
		};
	}
	
	@Override
	public void inicio(InfoGerador infoGerador) {
		super.inicio(infoGerador);
		this.pastaSaida = infoGerador.getPropriedade(GERADOR_CONTROLLER_PASTA_SAIDA);
	}
}
